@mixin flex-center {
  display: flex;
  justify-content: center;
  align-items: center;
}

@mixin flex-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@mixin flex-around {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

@mixin flex-column {
  display: flex;
  justify-content: center;
  flex-direction: column;
  align-items: center;
}

@mixin flex-start {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}


@mixin flex-end {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

@mixin text-ellipsis {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

@mixin text-ellipsis-multi($lines) {
  display: -webkit-box;
  -webkit-line-clamp: $lines;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

@mixin clearfix {
  &::after {
    content: "";
    display: table;
    clear: both;
  }
}
@mixin tab-item-base {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  border-radius: 8px;
  height: 100%;
  width: 11%;
  padding: 8px;
  transition: all 0.2s ease;
  cursor: pointer;
  background: #f8f9fa;
  border: 1px solid #e9ecef;
}

@mixin tab-item-hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  background: #fff;
  position: relative;
  color: #409eff;

  &::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border-radius: 8px;
    background: transparent;
    z-index: 0;
    padding: 2px;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    animation: borderAnimation 2s infinite;
  }

  span {
    color: #409eff;
    font-weight: 500;
  }

  .svg-icon {
    color: #409eff;
    transform: scale(1.1);
  }
}

@mixin tab-item-active {
  background: linear-gradient(to right, rgba(199, 224, 255, 0.05), rgba(72, 151, 248, 0.1));
  border: 2px solid transparent;
  position: relative;
  color: #409eff;
  box-shadow: 0 2px 8px rgba(64, 158, 255, 0.15);
  transition: all 0.3s ease;

  &::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border-radius: 8px;
    background: transparent;
    z-index: 0;
    padding: 2px;
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
    animation: borderAnimation 2s infinite;
  }

  span {
    color: #409eff;
    font-weight: 500;
    transition: color 0.3s ease;
  }

  .svg-icon {
    color: #409eff;
    transform: scale(1.1);
    transition: all 0.3s ease;
  }
}
